专利摘要:
在一具體實施例中,本發明揭示一種方法,該方法包括:利用將窗口狀態資料物件以及一唯一空間位置傳輸給每一用戶端,將顯像作業分散給具備圖形處理單元的已連線用戶端節點;在來自其唯一空間位置起點的每一該等用戶端上執行路徑追蹤;以及將其顯像的輸出傳輸回該伺服器。該伺服器由該等參與用戶端所接收的該等個別顯像輸出中產生一合成顯像輸出,然後將該合成傳輸給所有已連線的用戶端來顯示。如此,隨著用戶端節點數量增加,可用更快並且更高品質來顯像該場景。在特定具體實施例內,該顯像輸出為一光譜圖,呈現該場景的該擴散照明,並且每一用戶端都可從其自己的窗口顯現該場景的反光強調。
公开号:TW201316285A
申请号:TW101128927
申请日:2012-08-10
公开日:2013-04-16
发明作者:Julian Michael Urbach
申请人:Julian Michael Urbach;
IPC主号:G06F9-00
专利说明:
群眾外包式(CROWD-SOURCED)視訊顯像系統
本發明一般係關於應用程式的分散式、群眾外包式圖形顯像,尤其係關於運用一或多個已連線用戶端的圖形處理單元來執行擴散光顯像、從該等一或多個已連線用戶端接收該已顯像場景、從該等已接收場景產生一合成場景以及將該合成場景傳送給所有已連線用戶端之伺服器。
一般來說,主從式架構屬於一種分散式計算架構,分割伺服器與用戶端之間的作業或工作量,這些伺服器可稱之為「服務提供者」,而這些用戶端可稱之為「服務要求者」或「服務消費者」。通常該等伺服器與該等用戶端透過電腦網路連接,並且透過該電腦網路在個別伺服器與個別用戶端之間雙向傳輸許多種資料。傳統上來說,伺服器通常比用戶端具有更多資訊以及更高效能能力。伺服器與一或多個用戶端分享其資源,例如針對該等用戶端執行特定作業(即提供服務給該等用戶端)。因為一伺服器通常比一用戶端擁有更多資源,該伺服器可比該用戶端更快完成一項作業,尤其是資源需求量大的作業。
在伺服器與用戶端之間交換的資料可使用任何合適的資料格式呈現,並使用任何合適的通訊協定傳輸。例如:當在一伺服器上針對一用戶端執行應用程式時,該應用程式的輸出可使用一結構化文件來呈現,例如超文本標記語言(HyperText Markup Language,HTML)文件或可延伸標記語言(Extensible Markup Language,XML)文件。該伺服器可將其中包括代表應用程式輸出之資料的HTML或XML文件,透過該伺服器與該用戶端之間的超文本傳輸協定(HyperText Transfer Protocol,HTTP)連線傳輸給該用戶端。該用戶端在接收該HTML或XML文件時,可消耗該文件並使用該HTML或XML文件在本機上顯現該應用程式的輸出,例如在該用戶端上執行的網路瀏覽器內。
本發明一般係關於群眾外包式圖形顯像系統,其將顯像作業分散在一或多個已連接用戶端之間,然後將顯像的輸出傳輸回伺服器,接著伺服器將該用戶端輸出合成為單一顯像輸出,用於傳輸並顯示給所有已連接的用戶端。
在伺服器端圖形顯像的範疇內,單一伺服器可包括圖形處理單元(graphics processing unit,GPU)的陣列,用於顯像圖形物件並且將該輸出串流至用戶端。不過,複雜3D環境的顯像要佔用大量處理器循環,所以必須加入其他GPU或伺服器,以便提供足夠的已顯像畫面或場景給已連接的用戶端。如此,傳統伺服器端圖形顯像會遭遇到明顯的規模問題。讓提供者新增伺服器或GPU以滿足用戶端數量增加的需求可能相當昂貴;相反地,過度投資在伺服器或GPU基礎設施會導致供過於求時利用率低落。
此外在近幾年來,配備GPU可迅速執行相關複雜3D顯像的消費等級裝置數量已經急遽增加,例如:在2000年早期只有極少數配備GPU的個人電腦可在一分鐘內執行3D場景的路徑追蹤,不過目前已經有超過四千萬部配備GPU的個人電腦具備這種能力。因此,吾人想要利用這些用戶端GPU將伺服器的圖形顯像作業分擔給用戶端,以有效率的群眾外包方式將已知畫面或環境顯像。
在一個具體實施例內,電腦系統主控許多應用程式實例,每一應用程式實例都對應至一遠端用戶端應用程式。該電腦系統針對所主控的應用程式實例,維持至每一遠端用戶端應用程式的網路連線。在特定具體實施例內,該應用程式實例為一軟體小程式(software stub),底下有進一步討論。在特定具體實施例內,該電腦系統將顯像資產傳輸給該用戶端應用程式,讓擁有足夠強大GPU的電腦促成顯像。在特定具體實施例內,該電腦系統將以窗口狀態資料物件(viewport state data object,VSDO)的形式傳輸顯像資產,如底下進一步討論。在特定具體實施例內,該電腦系統也傳輸或指派唯一空間位置給參與該群眾外包式顯像處理的每一用戶端。在特定具體實施例內,該等用戶端裝置運用所接收的顯像資產以及該唯一窗口,以顯像該畫面或環境。在特定具體實施例內,該等用戶端裝置執行路徑追蹤,以顯現場景或環境的擴散光線。完成此指派的顯像作業之後,每一參與用戶端裝置都將其顯像的輸出傳回給該電腦系統。在特定具體實施例內,該顯像的輸出為來自特定觀點的畫面。在特定具體實施例內,該顯像的輸出為環境擴散照明的光譜圖。在特定具體實施例內,該顯像的輸出為修改過的窗口狀態資料物件。接收到該已顯像輸出時,該電腦系統產生一合成顯像輸出,傳輸回所有連接的用戶端,即使這些用戶端並未參與群眾外包式顯像處理。
在特定具體實施例內,每一已連線的用戶端都從現有相同的觀點來觀看該場景,並且該電腦系統將來自特定觀點的合成畫面傳輸給每一連線的用戶端來顯示。在特定具體實施例內,每一已連線的用戶端都從不同的透視點來觀看該場景,並且該電腦系統傳輸一合成顯像資產給個別用戶端,來用於其自己的顯像引擎。在特定環境內,該顯像資產為光譜圖,或內含光譜圖資料代表環境擴散光線的窗口狀態資料物件。如此,用戶端可使用該顯像資產從不同觀點顯現該場景,同時維持高品質熱輻射成像法(radiosity)照明。在特定具體實施例內,該等用戶端在本機上顯現該快速變化鏡面反射光,並且與內含環境的群眾外包式擴散照明之已接收顯像資產結合。如此,隨著擁有堪用GPU的用戶端節點數量增加,任何特定場景都可用更快或更高圖形品質方式來顯像。
在一個具體實施例內,揭示一種產生一合成顯像之方法。該方法包含由一處理器將共用顯像資產、與其他已傳輸空間位置不同的一唯一空間位置以及一或多個指令傳輸給一或多個用戶端,以便使用該共用顯像資產及其唯一空間位置,或使用該共用顯像資產以及已經傳輸給一或多個用戶端每一者之個別唯一空間位置,來產生一顯像。在一個具體實施例內,每一唯一空間位置都隨機產生。
在一個具體實施例內,產生一顯像的該等指令包含指令,以便在來自該唯一空間位置的該顯像資產上執行路徑追蹤,其中該顯像為包含該顯像資產的部分或全部環境之光譜圖。在一個具體實施例內,該顯像為一畫面,並且該一或多個指令另包含用來顯像該畫面的一共用觀點。在一個具體實施例內,該顯像資產為窗口狀態資料物件,並且該顯像為顯像資產的集合,其由該路徑追蹤結果所計算出來的擴散照明資料所強化。
該方法另包含:由該處理器從一或多個用戶端中每一者接收一顯像;以及由該處理器從所接收的顯像產生一合成顯像。如此,該合成顯像由該處理器傳輸至該一或多個用戶端。在一個具體實施例內,由該處理器產生該合成顯像包含由該處理器加入該接收的光譜圖,以產生內含該顯像資產的部分或整個環境之一合成光譜圖。在一個具體實施例內,由該處理器產生該合成顯像另包含加入該已接收的畫面以產生一合成畫面。
本說明書也揭示一種接收一合成顯像之方法。該方法包含由來自一伺服器的一處理器接收顯像資產、一唯一空間位置以及一或多個指令,來使用該已接收的顯像資產以及該唯一空間位置產生一顯像。該方法另包含:由該處理器根據該一或多個指令產生該顯像;由該處理器將該已產生的顯像傳輸給該伺服器;以及由該處理器從該伺服器接收一合成顯像。在一個具體實施例內,該方法另包含:由該處理器從一伺服器獨立觀點顯像鏡面反射光;由該處理器將該已顯像的鏡面反射光與該已接收的合成顯像結合;以及由該處理器將該已結合的顯像鏡面反射光與已接收的合成顯像輸出至一顯示器。
在一個具體實施例內,揭示一種產生一合成顯像之系統。該系統包含:一圖形處理單元;一處理器;以及一儲存媒體,在其上實質儲存由該處理器執行的程式邏輯。在一個具體實施例內,該程式邏輯包含:由該處理器執行共用顯像資產傳輸邏輯,以傳輸共用顯像資產至一或多個用戶端;由該處理器執行空間位置傳輸邏輯傳輸至每一該等一或多個用戶端,一唯一空間位置與其他已傳輸空間位置不同;以及由該處理器執行指令傳輸邏輯將一或多個指令傳輸給每一該等一或多個用戶端,以使用該共用顯像資產及其唯一空間位置來產生一顯像。在一個具體實施例內,該程式邏輯另包含:由該處理器執行接收邏輯,以從每一該等一或多個用戶端中接收一顯像;由該處理器執行合成顯像產生邏輯,以從已接收的顯像中產生一合成顯像;以及由該處理器執行合成顯像傳輸邏輯,以傳輸該合成顯像至該等一或多個用戶端。
在一個具體實施例內,揭示一種接收一合成顯像之系統。該系統包含:一圖形處理單元;一處理器;以及一儲存媒體,在其上實質儲存由該處理器執行的程式邏輯。在一個具體實施例內,該程式邏輯包含由一處理器執行接收邏輯,用於從一伺服器、顯像資產、一唯一空間位置以及一或多個指令接收,來使用該已接收的顯像資產以及該唯一空間位置產生一顯像。該程式邏輯另包含:由該處理器執行顯像產生邏輯,根據該一或多個指令產生該顯像;由該處理器執行傳輸邏輯,將該已產生的顯像傳輸給該伺服器;以及由該處理器執行合成顯像接收邏輯,從該伺服器接收一合成顯像。在一個具體實施例內,該系統另包含由該處理器執行照明顯像邏輯,從一伺服器獨立觀點來顯像鏡面反射光。該系統也包含:由該處理器執行結合邏輯,將該已顯像的鏡面反射光與該已接收的合成顯像結合;以及由該處理器執行輸出邏輯,將該已結合的顯像鏡面反射光與已接收的合成顯像輸出至一顯示器。
在一個具體實施例內,產生一顯像的該指令傳輸邏輯另包含指令,以便在來自該唯一空間位置的該顯像資產上執行路徑追蹤,其中該顯像為包含該顯像資產的部分或全部環境之光譜圖。在一個具體實施例內,該合成顯像產生邏輯另包含將邏輯加入該接收的光譜圖,以產生內含該顯像資產的部分或整個環境之一合成光譜圖。在一個具體實施例內,該合成顯像產生邏輯另包含加入由該處理器執行的邏輯,以便加入該已接收的畫面來產生一合成畫面。
利用參照下列詳細說明以及附圖,精通技術人士就可了解特徵可結合的這些與其他具體實施例。
此時將參考附圖內例示的一些具體實施例,詳細說明本發明。在下列說明中,將公佈許多設定細節以提供對本發明通盤的了解。不過精通技術人士將了解,不用某些或全部這些特定細節也可實施本發明。在其他實例中,並未詳細說明已知的處理步驟及/或結構,以避免不必要地模糊本發明。此外,雖然結合特定具體實施例來說明本發明,吾人將瞭解這並不用於將本發明限制在所說明的具體實施例內。相反地,本發明用於涵蓋申請專利範圍領域與精神內所包含之變化、修改與同等配置。
許多態樣或特徵將以包括許多裝置、元件、模組等的系統來表示。吾人將瞭解,許多系統可包括額外裝置、元件、模組等,及/或不包括圖式內所討論的所有裝置、元件、模組等。在此也可使用這些方式的組合。
主從式架構可讓伺服器與一或多個用戶端共享其資源,這種架構具備許多優點,例如:因為伺服器通常比用戶端具有更多資源(例如處理器或記憶體)以及更高效能,所以伺服器能夠比用戶端更快完成作業。在該作業對資源敏感或該用戶端的資源有限之情況下,這種效能尤其令人注意。此時,雖然伺服器代表或針對該用戶端執行作業,該用戶端的資源可空出來執行其他作業,例如需要在該用戶端本機上執行的作業(例如與該用戶端的使用者互動)。
一種適合在伺服器上執行的作業可為伺服器主控的應用程式顯像,例如用於傳輸給一用戶端的視頻輸出。在電腦圖形的範疇內,顯像可考慮為從一模型產生一影像之處理,通常藉由電腦程式。該模型通常為三維(3D)物體的描述,並且可呈現在嚴格定義的語言或資料結構內。該模型可內含外型、觀點、紋理、照明、陰影、動作及其他合適的資訊類型。該模型所顯像的影像可為數位影像或是光柵圖形影像,其可由像素集合所形成。本說明擴展顯像來產生一影像的概念,該影像呈現任何應用程式的任何輸出。該顯像可根據任何資料來執行,包括二維(2D)資料以及3D資料。除了根據3D模型產生影像之外,特定具體實施例可顯現代表應用程式輸出的影像,例如並且不受限於網路瀏覽應用程式、文字處理應用程式、試算表應用程式、多媒體應用程式、科學與醫療應用程式以及遊戲應用程式。
不過如上述,由於增加伺服器與GPU的成本,所以純伺服器端圖形顯像架構擴充性不佳。此外,已經適當加入伺服器/GPU基礎設施以符合峰值需求的系統在離峰時間時通常利用率非常低,導致伺服器或GPU資源浪費或閒置。
點對點架構為業界內所熟知,用於在對點之間分割作業。點對點網路具備增加系統總容量與資源,讓更多節點可進入網路的優點,例如:在BitTorrent網路內,檔案分享或「作種」的節點越多,檔案就越快傳輸至要求該檔案的其他節點。點對點網路盛行於檔案分享與串流內容傳遞應用程式,但是由於分散的天性,所以會遭遇相當高的延遲性,無法用於即時操作,例如圖形顯像。本說明提供一種集中式伺服器型伺服器模型,將圖形顯像作業負擔分散給用戶端節點,藉此獲得許多圖形顯像範疇內點對點架構的優勢。
更進一步,現有多GPU顯像的方法擴充性不佳。一般來說,多GPU系統運用下列兩種方法之一:分離畫面顯像(split frame rendering,SFR)或交替畫面顯像(alternative frame rendering,AFR)。在SFR中,每一GPU都顯現每一畫面的一部分。不過,處理的分配通常不平均,例如畫面的一部分內含複雜的外型,而畫面的另一部分內含相對簡單的外型。雖然許多分散演算法會考慮到每一部分的圖形複雜度,不過隨著GPU數量增加,該分散演算法變得更複雜並且處理器密集參與演算。AFR牽涉到以循環方式,將完成畫面的顯像分散到個別GPU。不過,因為下一個畫面會比之前的畫面更早顯像,造成延遲增加,所以此技術的擴充性不佳。此外,隨著GPU的數量逼近畫面率的特定百分比,在邏輯上無法讓下一個GPU提前知道下一個畫面看起來像是什麼。
本發明的一個具體實施例運用路徑追蹤來將已知3D環境的擴散照明顯像,解決了多GPU擴充性問題。路徑追蹤屬於一種顯像技術,其利用追蹤來自虛擬攝影機通過物體上許多邊界或通過物體的多重射線,嘗試盡可能模擬光線的物理行為。在耗費更多計算要求之下,路徑追蹤所提供的影像品質一般優於使用傳統顯像方法所產生的影像品質。路徑追蹤自然模擬其他方法必須特別加入的許多效果(射線追蹤或掃描線顯像),例如軟陰影、景深、動作模糊、散焦、環境閉塞以及間接照明。並且由於其精準與不偏移的性質,在測試其他顯像演算法的品質時,使用路經追蹤來產生參考影像。不過,因為有無限的假設照明路徑,所以必須在收斂至「完美合適」影像上的場景或畫面顯像之前,計算相對大量的樣本。本發明具體實施例利用分散產生路徑追蹤樣本,揭示一種分散式圖形顯像系統,提供點對點架構的無限擴充性以及好處,即是參與群眾外包式顯像處理的節點越多,顯像速度與輸出品質就越高,沒有傳統伺服器端圖形顯像伴隨的高成本。
第一圖例示其中可操作本發明特定實施的範例網路環境。如第一圖所例示,本發明的特定實施可在一網路環境內運作,該環境包含可操作耦合至網路雲端60(包括網際網路)的視訊傳輸系統(video transmission system,視訊傳輸系統)20。網路雲端60一般代表一或多個互連的網路,系統與本說明書內描述的主機可透過此來通訊。網路雲端60可包括封包式廣域網路(例如網際網路)、私用網路、無線網路、衛星網路、行動網路、傳呼網路等等。網路雲端60內的某些網路可為電路切換式網路。包括網路60的該電腦網路環境可為運用TCP/IP通訊協定(例如)及/或其他合適通訊協定,並且具有複數個互連數位封包傳輸站或路由節點的封包式通訊環境。用戶端節點82和84在操作時都透過網路服務提供者或任何其他合適的手段連接至網路環境。用戶端節點82和84可包括個人電腦或行動電話,以及其他種行動裝置,例如膝上型電腦、個人數位助理(personal digital assistant,PDA)等等。用戶端節點82包括GPU,可執行已知畫面或場景顯像所需的某些或全部顯像作業。用戶端節點84可包括擁有精簡型用戶端並且缺乏足夠圖形處理能力來參與群眾外包式顯像系統的低功率裝置,例如PDA、行動電話、平板PC、可攜式遊戲系統等等。
視訊傳輸系統20為網路可定址系統,主控一或多個虛擬世界、一或多個視訊或電影或可顯像來顯示在用戶端節點82和84上的任何3D環境。視訊傳輸系統20可包括網站與伺服器功能,使用者可透過該電腦網路要求並接收經過識別的網頁、視訊以及其他內容。
在特定實施當中,視訊傳輸系統20包含一或多個實體伺服器22以及一或多個資料儲存裝置24。一或多個實體伺服器22在操作時透過路由器26連接至電腦網路60。一或多個實體伺服器22主控讓使用者瀏覽可用內容的功能,例如從用戶端節點82和84接收要求或傳輸回應資料給該等節點。從路由器26至網路雲端60的連線應該具備足夠的頻寬,以支援同時從複數個用戶端節點82和84接收已顯像的輸出,以及將合成的已顯像輸出傳輸至用戶端節點82和84。視訊傳輸系統20同時當成接收器與廣播器,並且路由器26上的管路應該夠寬或高頻寬,以支援這種功能。在一個實施當中,一或多個實體伺服器所主控的功能性可包括網路或HTTP伺服器、RTSP伺服器等等。
如上討論的實體伺服器22主控功能,直接支援並實施視訊傳輸系統20。在一個實施當中,資料儲存裝置24可儲存視訊內容,例如數位內容資料物件、使用者資訊以及其他媒體資產。在特定實施當中,內容資料物件或內容物件為數位資訊的個別項目,通常儲存或收錄於資料檔案或記錄內。內容物件可採用許多形式,包括:文字(例如ASCII、SGML、HTML)、影像(例如jpeg、tif和gif)、圖形(向量型或位元圖)、音訊、視訊(例如mpeg)或其他多媒體以及這些的組合。內容物件資料也可包括可執行的程式碼物件、物件或資產定義等。在結構上,內容資料儲存裝置24連線至大型資料儲存與管理系統。在特定實施當中,內容資料儲存裝置24可由任何合適的實體系統來實施,包括例如資料庫伺服器、大量儲存媒體、媒體庫系統等等的元件。
在特定具體實施例內,該群眾外包式顯像系統透過軟體程式實施。在特定具體實施例內,該軟體程式(此後稱為「軟體小程式(software stub)」或簡稱「小程式(stub)」)可在用戶端節點82和84上安裝並執行。在特定具體實施例內,該小程式可在用戶端節點82和84與視訊傳輸系統20之間建立網路連線,並且透過網路連線從視訊傳輸系統20下載電腦軟體程式至用戶端節點82和84。在特定具體實施例內,從視訊傳輸系統20下載至用戶端節點82/84的軟體片段之可執行程式碼,可內嵌於透過該網路連線從視訊傳輸系統20傳送至用戶端82/84的資料串流內。在接收該資料串流時,該小程式可擷取軟體片段的可執行程式碼,並且直接載入用戶端82/84的隨機存取記憶體(Random-Access Memory,RAM)內,以便在該用戶端上執行。該軟體片段並不儲存或安裝在該用戶端的任何永久儲存裝置之上(例如硬碟)。一旦該軟體片段在用戶端82/84上執行完成,則釋放其中載入該軟體片段可執行程式碼的該RAM空間,並且該軟體片段從用戶端82/84上消失。在特定具體實施例內,該小程式在可參與群眾外包式圖形顯像系統的用戶端節點82上安裝顯像引擎或應用程式,而在用戶端節點84上只安裝檢視器應用程式,其缺乏參與群眾外包式顯像必要的處理能力。
在特定具體實施例內,該小程式可為用戶端82/84上儲存或安裝的單機軟體程式,或插入或外掛至用戶端82/84上安裝的網路瀏覽器。該小程式可使用任何合適的現有方法,儲存或安裝在用戶端82/84上,用於將電腦軟體程式分散至個別電腦系統(例如CD、DVD、網路下載等)。在特定具體實施例內,該小程式可為精簡軟體片段(即是大小不大),如此不會用到用戶端節點82/84中太多儲存容量。該小程式若為單機軟體程式則可自己執行,或若是內插或外掛軟體則透過網路瀏覽器執行。
藉由使用一小程式下載並啟動用戶端82/84上的電腦軟體程式,只有小程式本身需要永久儲存或安裝在用戶端82/84上。其他軟體片段可下載並在用戶端82/84上啟動,而不必儲存或安裝在用戶端82/84上,否則可能降低用戶端82/84的儲存容量。進一步,因為軟體片段只於用戶端節點82/84中之一個上執行之前下載,特定具體實施例有助於在每次下載並啟動該軟體片段時,提供最新(或任何所要的)軟體版本。
有關軟體小程式的詳細討論,請參閱2009年11月23日提出,標題為「Stream-Based Software Application Delivery and Launching System」的第12/624,133號共同擁有美國專利申請案,在此完整併入參考。
雖然第一圖描述一種集中化主從式架構,本發明考慮用於在多個用戶端節點之間通訊的任何網路拓撲方式。在特定具體實施例內,該等用戶端節點可排成點對點網路,其中一個特定節點指定為中央節點,接著執行與視訊傳輸系統20相同的功能。在特定具體實施例內,可運用環形拓撲,並且可將特定對點指定為該環領導者,後續執行與視訊傳輸系統20相同的功能。本發明考慮用於分散圖形處理至對點節點的任何合適網路拓撲,包括但不受限於匯流排、星型、網狀以及樹枝狀網路拓撲。
第二圖例示從每個用戶端的相同觀點,將單一畫面顯像群眾外包之範例方法。例如:在已連線的用戶端節點82和84都觀看同一部電影或視訊時,例如「玩具總動員3」這部電腦動畫片,則可運用第二圖的方法。由視訊傳輸系統20執行的動作描述於第二圖的左半邊內,參與節點82的動作描述於右上半部,並且所有用戶端節點82和84的動作都描述於右下半部。
在步驟201上,視訊傳輸系統20評估顯像一畫面所需的顯像資產。在特定具體實施例內,該等顯像資產可儲存在資料儲存裝置24內,後續從此取出。在特定具體實施例內,該等顯像資產可由視訊傳輸系統20動態產生。在特定具體實施例內,顯像資產可為已知環境、場景或畫面內的實際3D線框模型。不過,此方法對於頻寬敏感,並且不具有3D物件壓縮的優點。在特定物件內,該顯像資產為來自攝影機觀點的立方體圖。在特定具體實施例內,該等顯像資產包含稱為窗口狀態資料物件的分層立方體圖,其可使用像素或片段著色器顯像成已知畫面的像素值。
立方體圖基本上由六個紋理圖縫合成一立方體。每一紋理圖都包括圖素,就是有關一場景相對於共用參考點的像素資訊。藉由將立方體表面當成視窗矩形,從一共用參考點顯像一場景,以產生立方體表面上的紋理圖。每一圖素都可包含材質特性(折射率、顏色等)、與參考點的距離以及表面法線向量。使用深度剝離法可獲得代表一場景的分層紋理圖集合。剝離次數可限制,來控制層數。一開始可將窗口狀態資料物件即時產生在顯像裝置上,或儲存用於後續傳輸以回應視訊要求。運用深度剝離法或某些其他合適的處理,使用立方體圖以及多重顯像目標,讓顯像裝置能夠在GPU上有效產生窗口狀態資料物件。
分層圖素陣列(由一場景的深度分類層構成)內的每一圖素都儲存該參考點與圖素的深度剝離層內最遠物件點之間所有物件點上的資訊。為了產生對應至分層立方體圖的場景之顯像呈現,圖形處理單元可追蹤發自共同原點的射線,決定該場景內原點與物件之間的距離,使用片段著色器單元來計算從原點可看見點上的光彩。該顯像處理通常牽涉到將該場景外型光柵化,並且找出射線貫穿像素的第一次命中。有關多個窗口狀態資料物件或單一窗口狀態資料物件顯像的詳細討論,請參閱2009年6月15日提出,標題為「Re-Utilization of Render Assets for Video Compression」的第12/484,462號共同擁有美國專利申請案,在此完整併入參考。
在步驟202上,視訊傳輸系統20將該顯像資產,在此範例中就適用於場景或環境的該等窗口狀態資料物件,傳輸至擁有GPU可參與群眾外包式顯像處理的任何用戶端節點82。在特定具體實施例內,只有已知場景的第一畫面需要將窗口狀態資料物件傳輸至用戶端,並且後續畫面只需要繪畫指令描述攝影機或個別物件如何變更即可。在特定具體實施例內,特定場景的靜態元素可當成一個窗口狀態資料物件傳輸,並且場景的動態元素可當成分離窗口狀態資料物件傳輸;如此即使在變動頻繁的場景內,只需要更新或傳輸動態窗口狀態資料物件。本發明考慮任何壓縮視訊資料的適合方式,或透過重複使用先前傳輸的窗口狀態資料物件來節省頻寬之方法。
視訊傳輸系統20也傳輸一唯一空間位置給參與該群眾外包式顯像處理的每一用戶端節點82。該唯一空間位置代表路徑追蹤的虛擬眼睛或鏡頭之位置;每一用戶端節點82都從其唯一空間位置往回追蹤一假設射線,直到命中一光源(有可能不會命中)。在特定具體實施例內,指派給每一用戶端節點82的該唯一空間位置由視訊傳輸系統20隨機指派。在特定具體實施例內,該唯一位置根據路徑追蹤演算法,嘗試找出有相當高機率撞擊一光源的射線。在特定具體實施例內,該路徑追蹤演算法稍微修改先前追蹤過的成功路徑。在特定具體實施例內,選擇該唯一空間位置的該路徑追蹤演算法為Monte Carlo、Kajiya或Metropolis-Hastings(如Metropolis Light Transport內所描述)演算法。本發明考慮指派唯一空間位置給參與該群眾外包式顯像處理的每一用戶端節點之任何合適路徑追蹤演算法或方法。
在步驟203上,用戶端節點82在來自該唯一空間位置的該已接收顯像資產上執行路徑追蹤。如先前所陳述,該等顯像資產可為一或多個窗口狀態資料物件、先前已傳輸窗口狀態資料物件的轉換或繪畫指令或這兩者的任意組合。在特定具體實施例內,用戶端節點82執行雙向路徑追蹤。本發明考慮獲得路徑追蹤樣本的任何合適方式。路徑追蹤操作之後,用戶端裝置82產生粗略評估畫面擴散照明的樣本畫面。用戶端節點82可相對快速產生這些樣本畫面,不過場景照明的評估不佳並且有高雜訊。
在步驟204上,參與該群眾外包式顯像處理的每一用戶端節點82將其顯像畫面回傳給視訊傳輸系統20。在特定具體實施例內,該照明資料可加入窗口狀態資料物件,並且用戶端節點82可傳回例用該照明資料加強的窗口狀態資料物件。在特定具體實施例內,只有光譜圖或包括映射至窗口狀態資料物件上該照明資訊的紋理會回傳給視訊傳輸系統20。本發明考慮頻寬最佳化或視訊壓縮的任何合適方式。
在步驟205上,視訊傳輸系統20從該已接收畫面產生一合成畫面。由於光線的附加性質,例用將所有已接收的畫面加在一起並除以已接收畫面的數量,視訊傳輸系統20就可迅速產生該合成畫面。在特定具體實施例內,視訊傳輸系統20使用大型浮點緩衝區來儲存加總結果。在特定具體實施例內,視訊傳輸系統20從已接收的光譜圖產生一合成光譜圖,並且將該合成圖映射至窗口狀態資料物件上。本發明考慮產生一合成畫面的任何合適方式。根據場景的複雜度以及樣本數,該合成畫面應該收斂成完美熱輻射成像法照明。例如:8個用戶端節點產生8個別樣本可產出一個相當好的畫面,64個樣本可產生雜訊非常少的合成畫面,而1000個樣本則可產生完美擴散照明的畫面。
在步驟206上,視訊傳輸系統20傳輸該合成畫面給觀看該視訊串流的每一用戶端節點(參與節點82與未參與節點84),並且在步驟207上,個別用戶端節點82/84在其顯示器上顯示該已接收的合成畫面。在步驟208上,該處理結束並且該視訊傳輸系統傳輸該等顯像資產、轉換與繪畫指令或兩者的混合,用於視訊中下一個畫面。
第三圖例示由用戶端節點82所接收的顯像畫面範例。每一畫面301-320都代表利用從已知場景的唯一空間位置執行路徑追蹤,從個別用戶端節點82所獲得之輸出。畫面301-320的變動相當清楚;例如畫面301和302描寫有關場景內物體非常小的細節,而畫面320給觀看者一個雖然有雜訊,但是相當清晰的場景呈現。第三A圖代表由加入畫面301-320所產生的範例合成畫面321。雖然仍舊有些雜訊,不過該合成畫面提供清晰的場景圖片,並且內含高精確的擴散照明,包括軟反射、陰影、透明度以及焦散。第三圖和第三A圖描述光線的附加性質,以及可透過結合20個路徑追蹤所產生畫面獲得之品質呈現。如此本發明類似於點對點檔案分享;例如BitTorrent內的「作種」;參與用戶端節點82的數量越多,則遞送給要求該輸出的所有節點之顯像速度以及顯像輸出品質就越高。例如在特定具體實施例內,其中合成場景所需的樣本數超過參與節點數,該中央伺服器或參與節點必須執行多次顯像,因此會增加總顯像時間。隨著更多擁有相容GPU的用戶端節點「作種」該場景,則加快該顯像速度。
第四圖例示根據本發明一個具體實施例,將環境顯像分散給複數個用戶端之範例方法。在特定具體實施例內,視訊傳輸系統20的多個使用者可利用互動程式,其中每一用戶端節點82/84的顯示器並不會鎖定至特定攝影機觀點。例如:複數個使用者可使用電腦輔助設計(computer aided design,CAD)程式,例如瑪雅(Maya)或3D Studio Max,從許多不同角度獨立檢視一特定環境。針對其他範例,一些用戶端節點可遊玩視訊遊戲,多個使用者在相同環境內互動。例如:透過變化處理功率的裝置,複數個使用者全都在「魔獸世界」的特定空間內。
第五圖例示這種案例的範例。在第五圖內,3D環境500包括許多光源503以及一個反射池504。顯像時,反射池504可內含擴散照明以及鏡面反射光。環境500內有兩個使用者控制的角色501和502,每一使用者都具有特定攝影機視角以及窗口501a和502a。鏡面反射光包括來自環境500上光源503的反射,需要知道光射線路徑以及每一使用者的窗口501a和502a。因此,相較於鏡面反射光,擴散照明的移動相對緩慢並且靜止,尤其是在快速、即時應用當中,例如動作遊戲或第一人稱射擊遊戲。針對此範例的目的,使用者501使用可參與群眾外包式顯像處理的裝置(用戶端節點82),例如配備強大GPU的個人電腦或網路連線的遊戲機,並且使用者502使用精簡型用戶端裝置,其缺乏圖形處理能力來執行顯像,即便是自己的鏡面反射光,例如行動電話或平板電腦。
請重新參閱第四圖,在步驟401上,視訊傳輸系統20產生或存取窗口狀態資料物件用於特定環境500。視訊傳輸系統20可產生該等窗口狀態資料物件,以回應來自用戶端節點82和84上執行的軟體小程式之要求。例如:當用戶端節點82/84的使用者啟動一遊戲應用程式,或傳輸命令至該視訊傳輸系統指示玩家已經移動進入特定環境或往特定方向尋找,視訊傳輸系統20動態產生該等窗口狀態資料物件用於圍繞該使用者角色的環境內之物體。
在步驟402上,視訊傳輸系統20傳輸該等窗口狀態資料物件以及唯一空間位置至每一參與的用戶端節點82。在特定具體實施例內,只有在用戶端的使用者進入一個新環境,視訊傳輸系統20才會傳輸該等窗口狀態資料物件。另外,在步驟402上,視訊傳輸系統20傳輸一唯一位置指示碼至參與的用戶端節點82。雖然該唯一位置指示碼獨立於用戶端節點82所呈現的使用者之窗口501a之外,不過卻是一個隨機點,從此開始路徑追蹤來計算擴散照明。在特定具體實施例內,指派給每一用戶端節點82的該唯一空間位置由視訊傳輸系統20隨機指派。在特定具體實施例內,該唯一位置根據路徑追蹤演算法,嘗試找出有相當高機率撞擊一光源的射線。在特定具體實施例內,該路徑追蹤演算法稍微修改先前追蹤過的成功路徑。在特定具體實施例內,選擇該唯一空間位置的該路徑追蹤演算法為Monte Carlo、Kajiya或Metropolis-Hastings(如Metropolis Light Transport內所描述)演算法。本發明考慮指派唯一空間位置給參與該群眾外包式顯像處理的每一用戶端節點之任何合適路徑追蹤演算法或方法。
在步驟403上,用戶端節點82執行路徑追蹤,以產生環境500的光譜圖。光譜圖僅是一種紋理,內含可映射或貼附至窗口狀態資料物件上的周圍或擴散照明資料。當光譜圖已經映射至窗口狀態資料物件上並且由顯像引擎顯現窗口狀態資料物件時,精確將場景或環境顯示給使用者。在特定具體實施例內,該光譜圖僅為窗口狀態資料物件的額外層。在特定具體實施例內,可從窗口狀態資料物件分開傳輸光譜圖。在特定具體實施例內,光譜圖可使用2D壓縮演算法壓縮,例如JPG或離散餘弦變換(discrete cosine transfer,DCT)。
在步驟404上,每一參與用戶端節點82都將自己的光譜圖傳輸至視訊傳輸系統20。在特定具體實施例內,每一用戶端節點82都回傳一強化的窗口狀態資料物件。在特定具體實施例內,每一用戶端節點82都在傳輸之前壓縮其產生的光譜圖。本揭露事項考慮將顯像的擴散照明資訊回傳至視訊傳輸系統20之任何合適方式。
在步驟405上,視訊傳輸系統20根據從用戶端節點82接收的光譜圖來產生一合成光譜圖。隨著光譜圖用於個別畫面,光線的附加特性同樣施加於光譜圖。在特定具體實施例內,視訊傳輸系統20利用將所有已接收光譜圖的加總結果儲存在大型浮點緩衝區內,並且將該結果除以已接收的光譜圖數,以產生該合成光譜圖。在特定具體實施例內,在已經到達已接收用戶端光譜圖的臨界時間或數量之後,視訊傳輸系統自動產生該合成光譜圖。因為每一用戶端節點的光譜圖僅最低增加擴散照明通過特定臨界的品質,視訊傳輸系統20可選擇來產生該合成光譜圖,不用等待因為延遲而延後到達的用戶端光譜圖。在特定具體實施例內,視訊傳輸系統20會在產生該合成光譜圖之前,等待直到已經接收每一單一用戶端節點光譜圖,以便在每次刷新都取得最高品質光譜圖。因為擴散照明與觀點無關並且不會隨環境迅速改變(因為光源並未移動),使用者搖動改變觀點時比較不會注意到更新環境的擴散照明之延遲,其中與使用者觀點直接綁定的鏡面反射光顯像延遲就比較受到注意。
在步驟406上,視訊傳輸系統20將該合成光譜圖回傳至參與的用戶端節點82。在特定具體實施例內,視訊傳輸系統20將由內含該合成光譜圖的一層所強化之一或多個窗口狀態資料物件回傳給環境500。在特定具體實施例內,視訊傳輸系統20只傳輸該合成光譜圖。在特定具體實施例內,該合成光譜圖可使用2D壓縮技術壓縮。在特定具體實施例內,視訊傳輸系統20只傳輸相同窗口狀態資料物件傳輸至用戶端節點82的該先前光譜圖與該合成光譜圖間之變化。本發明考慮將擴散照明資料傳輸至用戶端節點82中頻寬節約之任何合適機構。
在步驟407上,參與用戶端節點82根據自己的觀點(例如觀點501a),來顯像該鏡面反射光給該環境。因為參與用戶端節點82擁有足夠強大來執行擴散照明路徑追蹤的GPU,所以應該足夠強大來顯現鏡面反射光。在與步驟407內鏡面反射光產生的同一時間上,每一用戶端節點82的使用者觀點(例如501a)都顯現在用戶端節點82的顯示器上。
因為使用者502使用缺乏足夠強大GPU來執行路徑照明的未參與用戶端節點84,在特定具體實施例內,視訊傳輸系統20認定用戶端裝置84缺乏處理能力來執行自己的觀點相關鏡面反射光。如此,視訊傳輸系統20顯現整個觀點(例如窗口502a)給用戶端節點84伺服器端。
在步驟409上,視訊傳輸系統20根據該環境的窗口狀態資料物件、該合成光譜圖以及接收自每一連線用戶端裝置84的攝影機資訊,以顯現精簡型用戶端節點84的窗口。在特定具體實施例內,視訊傳輸系統20使用一命中函數來修正每一用戶端84的窗口狀態資料物件原點與參考點(攝影機窗口)間之差異。
在步驟410上,視訊傳輸系統20將每一精簡型用戶端84的該已顯像窗口畫面傳輸至其個別用戶端。在特定具體實施例內,該畫面可透過2D壓縮技術壓縮。在步驟411上,用戶端裝置84將其接收的畫面顯示在其個別顯示器上。
如此,本發明的特定實施提供一種完全可擴充、分散式顯像架構,其具備點對點樣式的品質,其中該最終顯現影像的品質直接關聯於參與該分散式顯像系統的用戶端節點數。
特定具體實施例可在一網路環境內實施。第六圖例示一範例網路環境600。網路環境600包括一網路610,與一或多個伺服器620以及一或多個用戶端630彼此耦合。在特定具體實施例內,網路610為企業內部網路、企業外部網路、虛擬私用網路(virtual private network,VPN)、區域網路(local area network,LAN)、無線LAN(wireless LAN,WLAN)、廣域網路(wide area network,WAN)、都會區域網路(metropolitan area network,MAN)、通訊網路、衛星網路、網際網路的一部分或其他網路610或二或多種這些網路610的組合。本發明考慮任何合適的網路610。
一或多個連結650將伺服器620或用戶端630耦合至網路610。在特定具體實施例內,一或多個連結650之每一者都包括一或多個有線、無線或光纖連結650。在特定具體實施例內,一或多個連結650之每一者都包括企業內部網路、企業外部網路、VPN、LAN、WLAN、WAN、MAN、通訊網路、衛星網路、網際網路的一部分或其他連結650或二或多種這些連結650的組合。本發明考慮將伺服器620和用戶端630耦合至網路610的任何合適連結650。
在特定具體實施例內,每一伺服器620都可為單體伺服器,或可為跨越多部電腦或多個資料中心的分散式伺服器。伺服器620可為許多類型,像是例如並不受限於網路伺服器、新聞伺服器、郵件伺服器、訊息伺服器、廣告伺服器、檔案伺服器、應用程式伺服器、交換伺服器、資料庫伺服器或代理伺服器。在特定具體實施例內,每一伺服器620可包括硬體、軟體或內嵌式邏輯元件或二或多種這些元件的組合,用於執行伺服器620所實施或支援的適當功能性。例如:網路伺服器一般可主控內含網頁的網站或網頁的特定元件。尤其是,網路伺服器可主控HTML檔或其他檔案類型,或可依照要求動態建立或構成檔案,並且通訊至用戶端630,以回應來自用戶端630的HTTP或其他要求。郵件伺服器一般可提供電子郵件服務給許多用戶端630。資料庫伺服器一般可提供一介面,用於管理一或多個資料儲存裝置內儲存的資料。
在特定具體實施例內,每一用戶端630可為一電子裝置,包括硬體、軟體或內嵌式邏輯元件或二或多種這些元件的組合,用於執行用戶端630所實施或支援的適當功能性。例如並且不受限制,用戶端630可為桌上型電腦系統、筆記型電腦系統、小筆記型電腦系統、手持式電子裝置或行動電話。用戶端630可讓用戶端630上的網路使用者連上網路610。用戶端630可具有網路瀏覽器,例如Microsoft Internet Explorer或Mozilla Firefox,並且可具有一或多種外掛、內插或其他擴充,例如Google工具列或Yahoo工具列。用戶端630可讓其使用者與其他用戶端630上的其他使用者通訊。本發明考慮任何合適的用戶端630。
在特定具體實施例內,一或多個資料儲存裝置640都可透過一或多個連結650,通訊連結至一或多個伺服器620。在特定具體實施例內,資料儲存裝置640可用於儲存許多種資訊。在特定具體實施例內,可根據特定資料結構組織儲存於資料儲存裝置640內的該資訊。特定具體實施例可提供介面,讓伺服器620或用戶端630管理(例如擷取、修改、新增或刪除)資料儲存裝置640內儲存的資訊。
在特定具體實施例內,每一伺服器620都可同時服務一或多個用戶端630,並且執行顯像給所支援的用戶端630。伺服器620可利用將顯現影像編碼於視訊串流內,以傳輸顯現給所支援特定用戶端630的影像,其中每一顯現的影像都當成特定畫面,並且傳輸該視訊串流給用戶端630。用戶端630在接收到該視訊串流時,可將該視訊串流解碼,以便確實顯示該影像畫面。
特定具體實施例可實施為硬體、軟體或這兩者的組合。例如並且不受限制,一或多個電腦系統可執行特定邏輯或軟體,來執行本說明書所描述或例示的一或多個處理中之一或多個步驟。適當情況下,一或多個電腦系統可為單體或分散式、跨多部電腦系統或多個資料中心。本揭露事項考慮任何合適電腦系統。在特定具體實施例內,執行本說明書內所描述或例示的一或多個處理之一或多個步驟並不受限於一或多個特定地理位置,並且不必具有時間上的限制。適當情況下,如範例並且不設限,一或多個電腦系統可用「即時」、「離線」方式在「批次模式」內,或是上述合適的組合內執行其功能。適當情況下,一或多個電腦系統可在不同時間、不同地點上,使用不同處理來執行一或多個功能。適當情況下,其中邏輯的參考可包含軟體,反之亦然。適當情況下,軟體的參考可包含一或多個電腦程式,反之亦然。適當情況下,軟體的參考可包含資料、指令或這兩者,反之亦然。適當情況下,類似地,資料的參考可包含指令,反之亦然。
一或多個電腦可讀取儲存媒體可儲存或者具體實施軟體,來實施特定具體實施例。適當情況下,電腦可讀取媒體可為任何媒體,該媒體可執行、通訊、內含、維持、維護、傳播、保存、儲存、傳輸、運輸或具體實施軟體。適當情況下,電腦可讀取媒體可為生物、化學、電子、電磁、紅外線、磁性、光學、量子或其他合適的媒體或二或多個這些媒體的組合。電腦可讀取媒體可包括一或多個奈米等級元件,或具體實施奈米等級的設計或製造。範例電腦可讀取媒體包括但不受限於光碟(compact disc,CD)、場可程式閘陣列(field-programmable gate array,FPGA)、軟碟、光磁磁碟、硬碟、全息圖儲存裝置、積體電路(integrated circuit,IC)(例如應用專屬積體電路(application-specific integrated circuit,ASIC))、磁帶、快取、可程式邏輯裝置(programmable logic device,PLD)、隨機存取記憶體(random-access memory,RAM)裝置、唯讀記憶體(read-only memory,ROM)裝置、半導體記憶體裝置以及其他合適的電腦可讀取儲存媒體。
在適當情況下,軟體實施特定具體實施例可用任何合適的程式語言(可為程序或物件導向)或程式語言的組合來撰寫。在適當情況下,任何合適的電腦系統類型(例如單或多處理器電腦系統)都可執行軟體實施特定具體實施例。在適當情況下,一般用途電腦系統可執行軟體實施特定具體實施例。
例如:第七圖例示適合用於實施特定具體實施例中一或多個部分的範例電腦系統700。雖然本發明描述與例示一種在特定組態內具有特定元件的特定電腦系統700,不過本揭露事項考慮在任何合適組態內具有任何合適元件的任何合適電腦系統。再者,電腦系統700可採用任何合適的實體形式,像是例如一或多個積體電路(IC)、一或多個印刷電路板(printed circuit board,PCB)、一或多個手持式或其他裝置(例如行動電話或PDA)、一或多部個人電腦或一或多部超級電腦。
系統匯流排710將電腦系統700的子系統彼此耦合。其中參考匯流排包含一或多個共用的數位信號線路。本發明考慮任何合適的系統匯流排710,包括具有任何合適匯流排架構的任何合適匯流排結構(例如一或多個記憶體匯流排、一或多個周邊匯流排、一或多個區域匯流排或上述的組合)。範例匯流排架構包括但不受限於工業標準架構(Industry Standard Architecture,ISA)匯流排、增強型ISA(Enhanced ISA,EISA)匯流排、微通道架構(Micro Channel Architecture,MCA)匯流排、視訊電子標準協會區域(VLB)匯流排、周邊組件互連(Peripheral Component Interconnect,PCI)匯流排、PCI-Express匯流排(PCI-X)以及加速圖形連接埠(Accelerated Graphics Port,AGP)匯流排。
電腦系統700包括一或多個處理器720(或中央處理單元(CPU))。處理器720可包含用於指令、資料或電腦位址之本機暫時儲存的快取722。處理器720耦合至一或多個儲存裝置,包括記憶體730。憶體730可包括隨機存取記憶體(RAM)732以及唯讀記憶體(ROM)734。資料與指令可在處理器720與RAM 732之間雙向傳輸。資料與指令可從ROM 734單向傳輸至處理器720。RAM 732與ROM 734可包括任何合適的電腦可讀取儲存媒體。
電腦系統700包括固接式儲存裝置740,該儲存裝置雙向耦合至處理器720。固接式儲存裝置740可透過儲存控制單元752耦合至處理器720。固接式儲存裝置740可提供額外資料儲存容量,並且可包括任何合適的電腦可讀取儲存媒體。固接式儲存裝置740可儲存作業系統(operating system,OS)742、一或多個可執行碼744、一或多個應用程式或程式746、資料748等等。固接式儲存裝置740一般為一次要儲存媒體(例如硬碟),速度比主要儲存裝置慢。在適當情況下,固接式儲存裝置740儲存的資訊可當成虛擬記憶體併入記憶體730。
處理器720可耦合至許多介面,像是例如圖形控制器774、視訊介面758、輸入介面760、輸出介面762以及儲存介面764,其可依序分別耦合至適當裝置。範例輸入或輸出裝置包括但不受限於視訊顯示器、軌跡球、滑鼠、鍵盤、麥克風、觸控顯示器、傳感器讀卡機、磁帶或紙帶讀取器、平板、觸控筆、語音或手寫辨識器、生物識別讀取器或電腦系統。網路介面756可將處理器720耦合至其他電腦系統或網路780。在具備網路介面756時,處理器720可在特定具體實施例執行步驟期間從網路780接收資訊或傳送資訊至網路780。特定具體實施例可單獨在處理器720上執行。特定具體實施例可在處理器720上執行,以及在一或多個一起操作的遠端處理器上執行。
在網路環境內,其中電腦系統700連線至網路780,電腦系統700可與連線至網路780的其他裝置通訊。電腦系統700可透過網路介面756與網路780通訊,例如:電腦系統700可在網路介面756上,以一或多個傳入封包的形式,從網路780接收資訊(例如來自其他裝置的要求或回應),並且記憶體730可儲存傳入的封包供後續處理。電腦系統700可從網路介面756以一或多個傳出封包的形式,將資訊(例如對其他裝置的要求或回應)傳送至網路780,而這些封包在傳送之前已經儲存在記憶體730內。根據特定需求,處理器720可存取記憶體730內傳入或傳出的封包來處理這些封包。
電腦系統700可具有一或多個輸入裝置766(可包括數字鍵盤、鍵盤、滑鼠、觸控筆等)、一或多個輸出裝置768(可包括一或多個顯示器、一或多個喇叭、一或多個印表機等)、一或多個儲存裝置770以及一或多個儲存媒體752。輸入裝置766可在電腦系統700之外或之內。輸出裝置768可在電腦系統700之外或之內。儲存裝置770可在電腦系統700之外或之內。儲存媒體752可在電腦系統700之外或之內。
特定具體實施例牽涉到一或多個電腦儲存產品,包括一或多個電腦可讀取儲存媒體,具體實施軟體來執行本說明書內所描述或例示的一或多個處理之一或多個步驟。在特定具體實施例內,媒體、軟體或兩者的一或多個部分可經過特別設計與製造,來執行本說明書內所描述或例示的一或多個處理之一或多個步驟。此外或另外,在特定具體實施例內,一般可用媒體、軟體或兩者的一或多個部分,並不用針對本說明書內所描述或例示的一或多個處理來設計與製造。範例電腦可讀取媒體包括但不受限於CD(例如CD-ROM)、FPGA、軟碟、光磁磁碟、硬碟、全息圖儲存裝置、IC(例如ASIC)、磁帶、快取、PLD、RAM裝置、ROM裝置、半導體記憶體裝置以及其他合適的電腦可讀取儲存媒體。在特定具體實施例內,軟體可為編譯器可產生的機械碼,或者內含電腦使用解譯器可執行的較高階程式碼之一或多個檔案。
針對範例並且不受限制,記憶體730可包括具體實施軟體之一或多個電腦可讀取儲存媒體,並且在處理器720執行該軟體之後,電腦系統700可提供本說明書內描述或例示的特定功能性。記憶體730可儲存並且處理器720可執行該軟體。記憶體730可從具體實施該軟體的大量儲存裝置730內之電腦可讀取儲存媒體中讀取該軟體,或透過網路介面756從一或多個其他來源讀取該軟體。當執行該軟體時,處理器720可執行本說明書內所描述或例示的一或多個處理中之一或多個步驟,這可包括根據特定需求,定義一或多個資料結構用於記憶體730內的儲存裝置,以及修改一或多個資料結構,如該軟體的一或多個部分所指示。此外或另外,電腦系統700可提供本說明書內所描述或例示,邏輯在電路內硬連線或具體實施所造成的特定功能性,其可取代或與該軟體一起操作,來執行本說明書內所描述或例示的一或多個處理中之一或多個步驟。根據特定需求,本發明包含任何合適的硬體與軟體組合。
在特定具體實施例內,電腦系統700可包括一或多個圖形處理單元(Graphics Processing Unit,GPU)724。在特定具體實施例內,GPU 724可包含一或多個積體電路及/或處理核心,共用於圖形顯像內的數學運算。在某些具體實施例內,GPU 724可使用特殊圖形單元指令集,而在其他實施當中,該GPU可使用一CPU類(例如改良的x86)指令集。圖形處理單元724可實施一些圖形圖元運算,例如位圖傳輸、紋理映射、像素陰影、畫面緩衝等等。在特定具體實施例內,GPU 724可為一圖形加速器、一般用途GPU(GPGPU)或任何其他合適的處理單元。
在特定具體實施例內,GPU 724可具體實施於圖形或顯示卡內,其透過卡插槽固定至硬體系統架構。在其他實施中,GPU 724可整合在電腦系統架構的主機板上。合適的圖形處理單元包括Advanced Micro Devices(r)AMD R7XX型GPU裝置(Radeon(r)HD 4XXX)、AMD R8XX型GPU裝置(Radeon(r)HD 7XXX)、Intel(r)Larabee型GPU裝置(尚未上市)、nVidia(r)8系列GPU、nVidia(r)9系列GPU、nVidia(r)100系列GPU、nVidia(r)200系列GPU以及任何其他支援DX11的GPU。
雖然本發明描述或例示以特定順序發生的特定操作,不過本發明考慮以任何合適順序發生的任何合適操作。再者,本發明考慮以任何合適順序重複一或多次的任何合適操作。雖然本發明描述或例示依序發生的特定操作,不過在適當情況下,本發明考慮大體上同時發生的任何合適操作。在適合的情況下,本說明書所描述或例示的任何合適操作或操作順序都可中斷、暫停或由其他處理控制,例如作業系統或核心系統。該等動作可在作業系統環境內操作,或當成佔用全部或重要系統處理部分的單機常式。
精通技術人士將會了解本發明包含對於本說明書內範例具體實施例的所有變更、替換、改變、交替以及修改。同樣的,在適當的情況下,精通技術人士將會了解申請專利範圍包含對於本說明書內範例具體實施例的所有變更、替換、改變、交替以及修改。
20‧‧‧視訊傳輸系統
22‧‧‧實體伺服器
24‧‧‧資料儲存裝置
26‧‧‧路由器
60‧‧‧網路雲端(電腦網路)
82、84‧‧‧用戶端節點
201~208‧‧‧步驟
301~320‧‧‧畫面
321‧‧‧範例合成畫面
401~411‧‧‧步驟
500‧‧‧3D環境
501、502‧‧‧角色
503‧‧‧光源
504‧‧‧反射池
501a、502a‧‧‧窗口
600‧‧‧網路環境
610‧‧‧網路
620‧‧‧伺服器
630‧‧‧用戶端
640‧‧‧資料儲存裝置
650‧‧‧連結
700‧‧‧電腦系統
710‧‧‧系統匯流排
720‧‧‧處理器
722‧‧‧快取
724‧‧‧圖形處理單元
730‧‧‧記憶體
732‧‧‧隨機存取記憶體
734‧‧‧唯讀記憶體
740‧‧‧固接式儲存裝置
742‧‧‧作業系統
744‧‧‧可執行碼
746‧‧‧程式
748‧‧‧資料
752‧‧‧儲存控制單元
754‧‧‧圖形控制器
756‧‧‧網路介面
758‧‧‧視訊介面
760‧‧‧輸入介面
762‧‧‧輸出介面
764‧‧‧儲存介面
766‧‧‧輸入裝置
768‧‧‧輸出裝置
770‧‧‧儲存裝置
772‧‧‧儲存媒體
774‧‧‧圖形控制器
780‧‧‧網路
第一圖例示實施群眾外包式圖形顯像系統的範例主從式系統。
第二圖例示從固定觀點將畫面顯像分散給複數個用戶端之方法。
第三圖例示一已知場景的用戶端接收畫面範例。
第三A圖例示利用加入第三圖中該已用戶端接收畫面所產生的合成畫面。
第四圖例示將環境顯像分散給複數個用戶端之方法。
第五圖例示第四圖內用戶端的顯示輸出範例。
第六圖說明網路環境範例。
第七圖例示計算系統範例。
201~208‧‧‧步驟
权利要求:
Claims (20)
[1] 一種方法,包含:一處理器將共用顯像資產傳輸至一或多個用戶端;該處理器將一唯唯一空間位置傳輸至該一或多個用戶端之每一者,其中該唯一空間位置不同於其他已傳輸之空間位置;該處理器將一或多個指令傳輸給該一或多個用戶端之每一者,以使用該共用顯像資產及該唯唯一空間位置來產生一顯像;該處理器從該一或多個用戶端之每一者接收該顯像;該處理器從已接收的該顯像中產生一合成顯像;以及該處理器將該合成顯像傳輸至該一或多個用戶端。
[2] 如申請專利範圍第1項之方法,其中該唯一空間位置係隨機產生。
[3] 如申請專利範圍第1項之方法,其中產生該顯像的該等指令包含透過該唯唯一空間位置以執行路經追蹤於該等顯像資產上之指令。
[4] 如申請專利範圍第1項之方法,其中該等顯像資產為窗口狀態資料物件(viewport state data object,VSDO)。
[5] 如申請專利範圍第3項之方法,其中該顯像為一光譜圖,用於內含該等顯像資產的部份或整個環境。
[6] 如申請專利範圍第5項之方法,由該處理器產生該合成顯像係包含,該處理器加入該接收的光譜圖,以產生內含該顯像資產的部分或整個環境之一合成光譜圖。
[7] 如申請專利範圍第3項之方法,其中該等顯像資產為窗口狀態資料物件,並且該顯像為顯像資產的集合,其由該路徑追蹤結果所計算出來的擴散照明資料所強化。
[8] 如申請專利範圍第3項之方法,其中該顯像為一畫面,並且該一或多個指令另包含用來顯像該畫面的一共用觀點。
[9] 如申請專利範圍第8項之方法,由該處理器產生該合成顯像包含加入已接收的該畫面以產生一合成畫面。
[10] 一種方法,包含:一處理器從一伺服器接收顯像資產以及一唯一空間位置;該處理器從一伺服器接收一或多個指令,使用已接收的該等顯像資產以及該唯一空間位置來產生一顯像;該處理器根據該一或多個指令產生該顯像;該處理器將已產生的該顯像傳輸給該伺服器;該處理器從該伺服器接收一合成顯像。
[11] 如申請專利範圍第10項之方法,另包含:該處理器根據一獨立於伺服器之觀點顯像鏡面反射光;該處理器將已顯像的該鏡面反射光與該已接收的合成顯像結合;以及該處理器將已結合的已顯像之該鏡面反射光與已接收之合成顯像輸出至一顯示器。
[12] 一種系統,包含:一圖形處理單元;一處理器;以及一儲存媒體,在其上實質儲存由該處理器執行的程式邏輯,該程式邏輯包含:該處理器執行共用顯像資產傳輸邏輯,以傳輸共用顯像資產至一或多個用戶端;該處理器執行空間位置傳輸邏輯,以傳輸一唯一空間位置至該一或多個用戶端之每一者,其中該唯一空間位置不同於其他已傳輸之空間位置;該處理器執行指令傳輸邏輯將一或多個指令傳輸給該一或多個用戶端之每一者,以使用該共用顯像資產及該唯一空間位置來產生一顯像;該處理器執行接收邏輯,以從該一或多個用戶端之每一者中接收一顯像;該處理器執行合成顯像產生邏輯,以從已接收的該顯像中產生一合成顯像;以及該處理器執行合成顯像傳輸邏輯,以傳輸該合成顯像至該一或多個用戶端。
[13] 如申請專利範圍第12項之系統,其中該唯一空間位置係隨機產生。
[14] 如申請專利範圍第12項之系統,其中產生該顯像的該指令傳輸邏輯另包含透過該唯一空間位置以執行路經追蹤之指令於該等顯像資產上。
[15] 如申請專利範圍第12項之系統,其中該等顯像資產為窗口狀態資料物件。
[16] 如申請專利範圍第14項之系統,其中該顯像為一光譜圖,用於內含該等顯像資產的部份或整個環境。
[17] 如申請專利範圍第16項之系統,該合成顯像產生邏輯進一步包含加入邏輯以接收該光譜圖,藉以產生內含該顯像資產的部分或整個環境之一合成光譜圖。
[18] 如申請專利範圍第14項之方法,其中該等顯像資產為窗口狀態資料物件,並且該顯像為透過該路徑追蹤之結果所計算出來的擴散照明資料所強化之顯像資產的集合。
[19] 如申請專利範圍第12項之系統,其中該顯像為一畫面,並且該一或多個指令另包含用來顯像該畫面的一共用觀點。
[20] 如申請專利範圍第12項之系統,該合成顯像產生邏輯另包含加入由該處理器執行的邏輯,以加入該已接收的畫面來產生一合成畫面。
类似技术:
公开号 | 公开日 | 专利标题
TWI485644B|2015-05-21|群眾外包式(crowd-sourced)視訊顯像系統
JP5954802B2|2016-07-20|ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法、プログラムおよび装置
JP2009543195A|2009-12-03|グラフィックスパイプラインステートの高速再構成
KR20110105350A|2011-09-26|가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치
US8363051B2|2013-01-29|Non-real-time enhanced image snapshot in a virtual world system
Yoo et al.2010|Real-time parallel remote rendering for mobile devices using graphics processing units
US9928637B1|2018-03-27|Managing rendering targets for graphics processing units
US11170579B2|2021-11-09|Hybrid rendering
KR20180104915A|2018-09-27|3차원 가상공간 애니메이션 구현 시스템
US20210334933A1|2021-10-28|System and method for efficient multi-gpu execution of kernels by region based dependencies
US20190362534A1|2019-11-28|Multi-process compositor
同族专利:
公开号 | 公开日
AU2015200948A1|2015-03-12|
AU2012294352A8|2014-12-11|
EP2742431A2|2014-06-18|
JP2015215908A|2015-12-03|
TW201530489A|2015-08-01|
US10275926B2|2019-04-30|
TWI543108B|2016-07-21|
US20170169601A1|2017-06-15|
KR20140053293A|2014-05-07|
KR101851096B1|2018-04-20|
EP2742431A4|2016-03-30|
NZ620132A|2015-07-31|
AU2017228573A1|2017-10-05|
CN103874991A|2014-06-18|
AU2017228573B2|2018-09-06|
KR20170002694A|2017-01-06|
CA2843479C|2019-03-26|
AU2015200948B2|2017-08-31|
AU2012294352B2|2014-11-27|
US9582921B1|2017-02-28|
WO2013023069A2|2013-02-14|
KR101692193B1|2017-01-02|
WO2013023069A3|2013-07-11|
US20130038618A1|2013-02-14|
KR101600726B1|2016-03-07|
TWI485644B|2015-05-21|
AU2012294352B8|2014-12-11|
AU2012294352A1|2014-02-06|
NZ709336A|2016-11-25|
KR20160031553A|2016-03-22|
JP2014524611A|2014-09-22|
US9250966B2|2016-02-02|
JP5763276B2|2015-08-12|
CN103874991B|2017-03-22|
JP5943330B2|2016-07-05|
CA2843479A1|2013-02-14|
US20170053430A1|2017-02-23|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JPH0814853B2|1986-09-09|1996-02-14|富士通株式会社|並列レイトレーシングの負荷分散処理方法|
JPH08123978A|1994-10-25|1996-05-17|Toppan Printing Co Ltd|3次元画像処理システム|
JP3036395B2|1995-04-11|2000-04-24|日本電気株式会社|プログレッシブラジオシティの並列実行方法|
US6762761B2|1999-03-31|2004-07-13|International Business Machines Corporation|Method and system for graphics rendering using hardware-event-triggered execution of captured graphics hardware instructions|
US6702078B2|2002-01-03|2004-03-09|Thomas Ray Hardy|Floor cable management system|
US20030212742A1|2002-05-07|2003-11-13|Hochmuth Roland M.|Method, node and network for compressing and transmitting composite images to a remote client|
JP4122379B2|2002-05-24|2008-07-23|独立行政法人情報通信研究機構|ラジオシティの並列処理方法及びその装置|
JP4896237B2|2002-09-06|2012-03-14|株式会社ソニー・コンピュータエンタテインメント|画像処理方法、画像処理装置、および画像処理システム|
AU2003298666A1|2002-11-15|2004-06-15|Warner Bros. Entertainment Inc.|Reality-based light environment for digital imaging in motion pictures|
US7006090B2|2003-02-07|2006-02-28|Crytek Gmbh|Method and computer program product for lighting a computer graphics image and a computer|
JP4352990B2|2004-05-17|2009-10-28|日本ビクター株式会社|3次元画像生成システム|
US7385614B2|2005-03-28|2008-06-10|Silicon Graphics, Inc.|Compositing images using logically divided object space|
US8089481B2|2006-09-28|2012-01-03|International Business Machines Corporation|Updating frame divisions based on ray tracing image processing system performance|
EP2162864A1|2007-05-31|2010-03-17|Depth Analysis Pty.Ltd.|Systems and methods for applying a 3d scan of a physical target object to a virtual environment|
US8224087B2|2007-07-16|2012-07-17|Michael Bronstein|Method and apparatus for video digest generation|
US8063902B2|2007-10-12|2011-11-22|Caustic Graphics, Inc.|Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing|
RU2502122C2|2007-11-08|2013-12-20|Дженетик Файнанс Лимитед|Сетевая вычислительная система|
US8441476B2|2007-11-16|2013-05-14|Sportvision, Inc.|Image repair interface for providing virtual viewpoints|
US8350846B2|2009-01-28|2013-01-08|International Business Machines Corporation|Updating ray traced acceleration data structures between frames based on changing perspective|
US20100289804A1|2009-05-13|2010-11-18|International Business Machines Corporation|System, mechanism, and apparatus for a customizable and extensible distributed rendering api|
US8506402B2|2009-06-01|2013-08-13|Sony Computer Entertainment America Llc|Game execution environments|
US8803892B2|2010-06-10|2014-08-12|Otoy, Inc.|Allocation of GPU resources across multiple clients|
TWM400644U|2010-09-30|2011-03-21|Oct Technology Co Ltd|Transmission line for integrating peripheral signals into digital video interface signals|US20130210522A1|2012-01-12|2013-08-15|Ciinow, Inc.|Data center architecture for remote graphics rendering|
US8961302B2|2012-07-20|2015-02-24|Microsoft Technology Licensing, Llc|Game browsing|
US9381432B2|2012-08-24|2016-07-05|Microsoft Technology Licensing, Llc|Game migration|
US9437039B2|2012-09-11|2016-09-06|Nvidia Corporation|Method and system for graphics rendering employing gradient domain metropolis light transport|
US9717985B2|2012-10-02|2017-08-01|RazerPte. Ltd.|Fragment-based mobile device application streaming utilizing crowd-sourcing|
US9264749B2|2012-12-13|2016-02-16|Microsoft Technology Licensing, Llc|Server GPU assistance for mobile GPU applications|
US9717982B2|2012-12-21|2017-08-01|Microsoft Technology Licensing, Llc|Client rendering of latency sensitive game features|
US9526980B2|2012-12-21|2016-12-27|Microsoft Technology Licensing, Llc|Client side processing of game controller input|
US10345989B2|2013-02-14|2019-07-09|Autodesk, Inc.|Collaborative, multi-user system for viewing, rendering, and editing 3D assets|
US9564102B2|2013-03-14|2017-02-07|Microsoft Technology Licensing, Llc|Client side processing of player movement in a remote gaming environment|
US9694277B2|2013-03-14|2017-07-04|Microsoft Technology Licensing, Llc|Client side processing of character interactions in a remote gaming environment|
US10713838B2|2013-05-03|2020-07-14|Nvidia Corporation|Image illumination rendering system and method|
US10008034B2|2013-05-03|2018-06-26|Nvidia Corporation|System, method, and computer program product for computing indirect lighting in a cloud network|
EP3044765A4|2013-09-11|2017-05-10|Square Enix Holdings Co., Ltd.|Rendering apparatus, rendering method thereof, program and recording medium|
US9641592B2|2013-11-11|2017-05-02|Amazon Technologies, Inc.|Location of actor resources|
US20150130814A1|2013-11-11|2015-05-14|Amazon Technologies, Inc.|Data collection for multiple view generation|
US9634942B2|2013-11-11|2017-04-25|Amazon Technologies, Inc.|Adaptive scene complexity based on service quality|
US9604139B2|2013-11-11|2017-03-28|Amazon Technologies, Inc.|Service for generating graphics object data|
US9582904B2|2013-11-11|2017-02-28|Amazon Technologies, Inc.|Image composition based on remote object data|
US9578074B2|2013-11-11|2017-02-21|Amazon Technologies, Inc.|Adaptive content transmission|
US9413830B2|2013-11-11|2016-08-09|Amazon Technologies, Inc.|Application streaming service|
US20150130815A1|2013-11-11|2015-05-14|Amazon Technologies, Inc.|Multiple parallel graphics processing units|
WO2015070235A1|2013-11-11|2015-05-14|Quais Taraki|Data collection for multiple view generation|
US9805479B2|2013-11-11|2017-10-31|Amazon Technologies, Inc.|Session idle optimization for streaming server|
US20150133216A1|2013-11-11|2015-05-14|Amazon Technologies, Inc.|View generation based on shared state|
US10742716B1|2013-12-16|2020-08-11|Amazon Technologies, Inc.|Distributed processing for content personalization|
EP3092623A4|2014-01-09|2017-08-30|Square Enix Holdings Co., Ltd.|Online game server architecture using shared rendering|
CN105335345B|2014-07-03|2017-12-19|北大方正集团有限公司|彩色图像文件合成方法和装置|
US9294786B2|2014-07-07|2016-03-22|International Business Machines Corporation|Coordination of video and/or audio recording|
CN104125494B|2014-07-07|2017-07-11|四川中电启明星信息技术有限公司|一种大屏幕分布式播放场景画面拼接方法|
CN104392481B|2014-11-25|2017-12-05|无锡梵天信息技术股份有限公司|一种利用贴图控制高光反射清晰度的方法及装置|
EP3029940B1|2014-12-04|2017-03-15|Axis AB|Method and device for post processing of a video stream|
US10742703B2|2015-03-20|2020-08-11|Comcast Cable Communications, Llc|Data publication and distribution|
US10516868B2|2015-07-09|2019-12-24|Doubleme, Inc.|HoloPortal and HoloCloud system and method of operation|
US20170140570A1|2015-11-13|2017-05-18|Intel Corporation|Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices|
EP3185152B1|2015-12-22|2022-02-09|Dassault Systèmes|Distributed clash and snapping|
US10719902B2|2017-04-17|2020-07-21|Intel Corporation|Thread serialization, distributed parallel programming, and runtime extensions of parallel computing platform|
US10455135B2|2017-11-17|2019-10-22|Facebook, Inc.|Enabling crowd-sourced video production|
CN108364292B|2018-03-26|2021-05-25|吉林大学|一种基于多幅视角图像的光照估计方法|
US11032345B2|2018-05-10|2021-06-08|Microsoft Technology Licensing, Llc|Client side data stream processing|
US10924525B2|2018-10-01|2021-02-16|Microsoft Technology Licensing, Llc|Inducing higher input latency in multiplayer programs|
US11049315B2|2019-07-31|2021-06-29|Verizon Patent And Licensing Inc.|Methods and devices for bifurcating graphics rendering between a media player device and a multi-access edge compute server|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
US13/208,164|US9250966B2|2011-08-11|2011-08-11|Crowd-sourced video rendering system|
PCT/US2012/050165|WO2013023069A2|2011-08-11|2012-08-09|Crowd-sourced video rendering system|
[返回顶部]